package aiguigu4.search_sort;

/**
 * ClassName: ArrayExer01_2
 * Package: aiguigu4.search_sort
 * Description:数组的缩容
 *
 * @Author ZY
 * @Create 2024/9/13 13:20
 * @Version 1.0
 */
public class ArrayExer01_2 {
    public static void main(String[] args) {
        int[] arr = {1,2,3,4,5,6,7};

        int deleteIndex = 4;

        //方式1：不新建数组
//        for (int i = deleteIndex; i < arr.length - 1; i++){
//            arr[i] = arr[i + 1];
//        }
        //修改最后元素，设置为默认值
//        arr[arr.length - 1] = 0;

        //方式2：新建数组，新的数组的长度比原有数组的长度少1个(这里的新数组做中转的作用，最后还是使用的arr数组)
        int[] newArr = new int[arr.length - 1];
        //第一个循环的作用是将arr[0]到arr[deleteIndex]之间(即1,2,3,4)的元素赋值给newArr数组
        for (int i = 0; i < deleteIndex; i++) {
            newArr[i] = arr[i];
        }
        //第二个循环的作用是将arr[deleteIndex + 1]到arr[arr.length - 1]之间(即6,7)的元素向前移动填补(元素5)的空位
        for (int i = deleteIndex; i < arr.length - 1; i++) {
            newArr[i] = arr[i + 1];
        }

        arr = newArr;//更新arr数组的引用，保持引用的一致性

        //遍历arr数组
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i] + "\t");
        }
    }
}
